// 飞机父类
abstract class Plane {
    int weight;
    int altitude;

    abstract void takeOff();
    abstract void accelerate();
    abstract void land();
}

// 客机子类
class PassengerPlane extends Plane {
    int seatCount;

    PassengerPlane(int seatCount, int weight, int altitude) {
        this.seatCount = seatCount;
        this.weight = weight;
        this.altitude = altitude;
    }

    @Override
    void takeOff() {
        System.out.println("客机起飞");
    }

    @Override
    void accelerate() {
        System.out.println("客机加速");
    }

    @Override
    void land() {
        System.out.println("客机降落");
    }
}

// 战斗机子类
class FighterJet extends Plane {
    int warheadCount;

    FighterJet(int warheadCount, int weight, int altitude) {
        this.warheadCount = warheadCount;
        this.weight = weight;
        this.altitude = altitude;
    }

    @Override
    void takeOff() {
        System.out.println("战斗机起飞");
    }

    @Override
    void accelerate() {
        System.out.println("战斗机加速");
    }

    @Override
    void land() {
        System.out.println("战斗机降落");
    }

    void launchMissile() {
        System.out.println("战斗机发射导弹");
    }

    void circleLow() {
        System.out.println("战斗机低空盘旋");
    }
}

// 飞行员类
class AcePilot {
    void testFly(Plane plane) {
        plane.takeOff();
        plane.accelerate();
        plane.land();
    }
}

public class Main {
    public static void main(String[] args) {
        AcePilot pilot = new AcePilot();
        PassengerPlane passengerPlane = new PassengerPlane(200, 10000, 10000);
        FighterJet fighterJet = new FighterJet(8, 5000, 15000);

        System.out.println("测试客机飞行：");
        pilot.testFly(passengerPlane);
        System.out.println("测试战斗机飞行：");
        pilot.testFly(fighterJet);
    }
}